package edu.gatech.cc.concolic;

import gov.nasa.jpf.Config;
import gov.nasa.jpf.util.GenericInstructionFactory;


public class ConcolicInstructionFactory extends GenericInstructionFactory {

	// bytecodes replaced by this instruction factory
	static final String[] BC_NAMES = { 
		"IADD",	"IAND", "IDIV", "IINC", "IMUL", "INEG", "IOR", "IREM", "ISUB", "IXOR", "ISHL", "ISHR", "IUSHR",
		"LADD", "LAND", "LCMP", "LDIV",	"LMUL", "LNEG", "LOR", "LREM", "LSUB", "LXOR", "LSHL", "LSHR", "LUSHR",
		
		"IF_ICMPGE", "IF_ICMPGT", "IF_ICMPLE", "IF_ICMPLT", "IF_ICMPEQ", "IF_ICMPNE", 
		"IFLE", "IFLT",	"IFGE", "IFGT", "IFEQ", "IFNE",
				
		"I2B", "I2C", "I2L", "L2I",
		"I2F", "I2D", "L2F", "L2D", // warn on conversion to unsupported type
		
		"BALOAD", "CALOAD", "IALOAD", "LALOAD",
		
		"TABLESWITCH", "LOOKUPSWITCH",
	};

	protected static final String PKG_NAME = ConcolicInstructionFactory.class.getPackage().getName() + ".bytecode.";

	protected static final String[] DEFAULT_EXCLUDES = {};

	public ConcolicInstructionFactory(Config conf) {
		super(conf, PKG_NAME, BC_NAMES, null, DEFAULT_EXCLUDES);

	}
}
